|
In computational number theory, Cipolla's algorithm is a technique for solving a congruence of the form : where , so ''n'' is the square of ''x'', and where is an odd prime. Here denotes the finite field with elements; . The algorithm is named after Michele Cipolla, an Italian mathematician who discovered it in 1907. ==Algorithm== Inputs: * , an odd prime, * , which is a square. Outputs: * , satisfying Step 1 is to find an such that is not a square. There is no known algorithm for finding such an , except the trial and error method. Simply pick an and by computing the Legendre symbol one can see whether satisfies the condition. The chance that a random will satisfy is . With large enough this is about .〔R. Crandall, C. Pomerance Prime Numbers: A Computational Perspective Springer-Verlag, (2001) p. 157〕 Therefore, the expected number of trials before finding a suitable ''a'' is about 2. Step 2 is to compute ''x'' by computing within the field . This ''x'' will be the one satisfying If , then also holds. And since ''p'' is odd, . So whenever a solution ''x'' is found, there's always a second solution, ''-x''. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Cipolla's algorithm」の詳細全文を読む スポンサード リンク
|